home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / INVEE.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-28  |  3.9 KB  |  140 lines

  1. 10  'INVEE - inverted vee antenna dimensions - 20 DEC 93 rev. 27 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF
  4. 40  COLOR 7,0,1
  5. 50  UL$=STRING$(80,205)
  6. 60  U$="###.###"
  7. 70  V$="####.#"
  8. 80  PI=3.14159
  9. 90  T$=" INVERTED VEE ANTENNA DIMENSIONS"+SPACE$(24)+"by George Murphy VE3ERP "
  10. 100  '
  11. 110  '.....start
  12. 120  CLS:T=0:RA=0:HT=0:AN=0:MA=0:SU=0:AA=0:BB=0
  13. 130  ROW=3
  14. 140  COL=39:X=1
  15. 150  LOCATE ROW,COL:PRINT "/OPEN\"        'draw apex
  16. 160  '.....draw antenna
  17. 170  FOR Z=ROW TO ROW+15
  18. 180  X=X+2
  19. 190  IF X<=28 THEN PRINT TAB(COL+1-X);"/";
  20. 200  IF X>28 THEN PRINT TAB(COL+1-28);"OPEN";
  21. 210  PRINT TAB(COL+1);"OPEN";
  22. 220  IF X>28 THEN PRINT TAB(COL+1+28);"OPEN";
  23. 230  IF X<=28 THEN PRINT TAB(COL+1+X);"\"
  24. 240  NEXT Z
  25. 250  '.....draw ground line
  26. 260  PRINT TAB(6);STRING$(69,196)
  27. 270  LOCATE Z+1,COL+1:PRINT "USR"
  28. 280  LOCATE Z+1,COL-27:PRINT "USR"
  29. 290  LOCATE Z+1,COL+29:PRINT "USR"
  30. 300  '.....draw dimension lines
  31. 310  LOCATE Z+3,COL-27:PRINT "CALL<";STRING$(53,"SOUND");">CALL"
  32. 320  LOCATE Z+3,COL:PRINT ">CALL<"
  33. 330  LOCATE Z+3,COL-14:PRINT " B "
  34. 340  LOCATE Z+3,COL+14:PRINT " B "
  35. 350  LOCATE Z+4,COL-27:PRINT "CALL<";STRING$(53,"SOUND");">CALL"
  36. 360  LOCATE Z+4,COL:PRINT " A "
  37. 370  '.....add text
  38. 380  LOCATE ROW+2,COL-3:PRINT"DEFSNG-ANGLE-DEFDBL"
  39. 390  LOCATE ROW+6,COL-16:PRINT "RADIATOR"
  40. 400  LOCATE ROW+6,COL+10:PRINT "RADIATOR"
  41. 410  LOCATE ROW+8,COL-1:PRINT "MAST"
  42. 420  LOCATE ROW+15,COL-30:PRINT "SUPPORT"
  43. 430  LOCATE ROW+15,COL+26:PRINT "SUPPORT"
  44. 440  LOCATE 24,10:COLOR 15,2
  45. 450  PRINT " ENTER ALL DIMENSIONS IN SAME UNITS (e.g. metres/feet, etc.) ";
  46. 460  LOCATE 25,10:COLOR 15,2
  47. 470  PRINT "  RESULTING CALCULATED DIMENSIONS WILL BE IN THE SAME UNITS  ";
  48. 480  COLOR 7,0
  49. 490  LOCATE 1,22
  50. 500  COLOR 0,7:PRINT " Press 1 to continue or 0 to EXIT.....":COLOR 7,0
  51. 510  Z$=INKEY$:IF Z$=""THEN 510
  52. 520  IF Z$="0"THEN CLS:RUN EX$
  53. 530  IF Z$="1"THEN 550
  54. 540  GOTO 510
  55. 550  LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
  56. 560  PRINT " If you don't know this value then press <ENTER>. If you DO know ";
  57. 570  PRINT "then"
  58. 580  '
  59. 590  '.....input data
  60. 600  LOCATE 2
  61. 610  COLOR 0,7
  62. 620  IF RA=0 THEN INPUT" ENTER: Length of radiators..";RA:GOSUB 700
  63. 630  IF AN=0 THEN INPUT" ENTER: Apex angle (degrees) ";AN:T=AN/2*PI/180:GOSUB 700
  64. 640  IF MA=0 THEN INPUT" ENTER: Height of mast.......";MA:GOSUB 700
  65. 650  IF SU=0 THEN INPUT" ENTER: Height of supports...";SU:GOSUB 700
  66. 660  IF AA=0 THEN INPUT" ENTER: Dimension A..........";AA:BB=AA/2:GOSUB 700
  67. 670  IF BB=0 THEN INPUT" ENTER: Dimension B..........";BB:AA=BB*2:GOSUB 700
  68. 680  GOTO 620
  69. 690  '
  70. 700  '.....calculations
  71. 710  LOCATE 2:PRINT STRING$(80,219);
  72. 720  IF HT=0 THEN IF MA*SU THEN HT=MA-SU
  73. 730  FOR I=1 TO 5
  74. 740  IF RA THEN 780
  75. 750   IF HT*BB THEN RA=SQR(HT^2+BB^2):GOTO 780
  76. 760   IF T*BB THEN RA=BB/SIN(T):GOTO 780
  77. 770   IF T*HT THEN RA=HT/COS(T):GOTO 780
  78. 780  IF HT THEN 820
  79. 790   IF RA*BB THEN HT=SQR(RA^2-BB^2):GOTO 820
  80. 800   IF T*BB THEN HT=BB/TAN(T):GOTO 820
  81. 810   IF T*RA THEN HT=RA*COS(T):GOTO 820
  82. 820  IF AN THEN 880
  83. 830   IF BB*HT THEN T=ATN(BB/HT):GOTO 860
  84. 840   IF RA*BB THEN F=BB/RA:T=ATN(F/SQR(-F*F+1)):GOTO 860
  85. 850   IF RA*HT THEN G=HT/RA:T=-(ATN(G/SQR(-G*G+1)))+PI/2:GOTO 860
  86. 860    IF T>PI/2 THEN T=T-PI/2:GOTO 860
  87. 870    AN=T*2*180/PI:IF AN<0 THEN AN=360+AN
  88. 880  IF MA THEN 900
  89. 890   IF HT*SU THEN MA=HT+SU:GOTO 900
  90. 900  IF SU THEN 940
  91. 910   IF MA*HT THEN SU=MA-HT
  92. 920  IF SU<0 THEN MA=HT:SU=9.999E-06
  93. 930  GOTO 940
  94. 940  IF BB THEN 960
  95. 950   IF RA*HT THEN BB=SQR(RA^2-HT^2):AA=2*BB:GOTO 1020
  96. 960  IF MA*SU THEN IF MA=SU THEN AN=180:MA=MA+9.9999E-05:SU=SU-9.9999E-05
  97. 970  IF AN<>180 THEN 1020
  98. 980   IF RA THEN BB=RA:AA=2*RA
  99. 990   IF BB THEN RA=BB:AA=2*BB
  100. 1000   IF AA THEN BB=AA/2:AA=2*BB
  101. 1010  '
  102. 1020  'COLOR 0,7
  103. 1030  IF RA THEN LOCATE ROW+6,16:PRINT " RADIATOR ";USING U$;RA;:PRINT " Lg."
  104. 1040  IF RA THEN LOCATE ROW+6,44:PRINT " RADIATOR ";USING U$;RA;:PRINT " Lg."
  105. 1050  IF AN THEN LOCATE ROW+2,36:PRINT "DEFSNG-ANGLE-DEFDBL"
  106. 1060  IF AN THEN LOCATE ROW+3,36:PRINT " ";USING V$;AN;:PRINT "<UNK! {00F8}> "
  107. 1070  IF MA THEN LOCATE ROW+8,31:PRINT " MAST ";USING U$;MA;:PRINT " High "
  108. 1080  IF SU THEN LOCATE ROW+15,2:PRINT " SUPPORT";USING U$;SU;:PRINT " High "
  109. 1090  IF SU THEN LOCATE ROW+15,58:PRINT " SUPPORT";USING U$;SU;:PRINT " High "
  110. 1100  IF AA THEN LOCATE ROW+20,36:PRINT " ";USING U$;AA;:PRINT " "
  111. 1110  IF BB THEN LOCATE ROW+19,22:PRINT " ";USING U$;BB;:PRINT " "
  112. 1120  IF BB THEN LOCATE ROW+19,50:PRINT " ";USING U$;BB;:PRINT " "
  113. 1130  NEXT I
  114. 1140  LOCATE 2:PRINT STRING$(80,219):LOCATE 2:COLOR 0,7
  115. 1150  IF RA*AN*MA*SU*BB*AA THEN GOSUB 1180:CLS:RUN EX$      'EXIT
  116. 1160  RETURN
  117. 1170  '
  118. 1180  LOCATE 1
  119. 1190  COLOR 15,2:PRINT T$;
  120. 1200  COLOR 1,0:PRINT STRING$(80,223);
  121. 1210  LOCATE 24
  122. 1220  COLOR 7,0:PRINT STRING$(80,32);
  123. 1230  GOSUB 1270
  124. 1240  GOTO 110   'start
  125. 1250  END
  126. 1260  '
  127. 1270  'HARDCOPY
  128. 1280  GOSUB 1390:LOCATE 25,2:COLOR 14,6
  129. 1290  PRINT " Press 1 to print screen, 2 to print screen & ";
  130. 1300  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  131. 1310  Z$=INKEY$:IF Z$="3"THEN GOSUB 1390:RETURN
  132. 1320  IF Z$="1"OR Z$="2"THEN GOSUB 1390:GOTO 1340
  133. 1330  GOTO 1310
  134. 1340  FOR QX=1 TO 24:FOR QY=1 TO 80
  135. 1350  LPRINT CHR$(SCREEN(QX,QY));
  136. 1360  NEXT QY:NEXT QX
  137. 1370  IF Z$="2"THEN LPRINT CHR$(12)
  138. 1380  GOTO 1280
  139. 1390  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  140.